package util;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * java类进程创建工具
 * @author self
 *
 */
public class JavaProcessBuilder {
	
	private JavaProcessBuilder() {}
	
	/**
	 * 创建用于运行class的ProcessBuilder
	 * @param clazz 要运行的类，该类需有一个main方法
	 * @param args	运行参数
	 * @return	已配置用于运行指定java类的ProcessBuilder
	 */
	public static ProcessBuilder build(Class<?> clazz,String[] args){
		String javaHome = System.getProperty("java.home");
		String javaBin = javaHome + File.separator + "bin" + File.separator + "java";
		String classPath = System.getProperty("java.class.path");
		String className = clazz.getName();

		List<String> command = new ArrayList<>();
		command.add(javaBin);
		command.add("-cp");
		command.add(classPath);
		command.add(className);
		command.addAll(Arrays.asList(args));
		
		return new ProcessBuilder(command);
	}
}
